﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class manter_gerente : System.Web.UI.Page
{
    UsuarioDTO usuario_DTO;
    UsuarioDAO usuario_DAO;
    GerenteDTO gerente_DTO;
    GerenteDAO gerente_DAO;
    
    protected void Page_Load(object sender, EventArgs e)
    {

        if (Session["login"] == "true")
        {
            carregaGrid();
        }
        else
        {
            Response.Redirect("home.aspx");
        }

    }

    private void carregaGrid()
    {
        usuario_DAO = new UsuarioDAO();
        gridGerentes.DataSource = usuario_DAO.getAllGerentes();
        gridGerentes.DataBind();
    }

    protected void cadastrarGerente(object sender, EventArgs e)
    {
        usuario_DAO = new UsuarioDAO();
        usuario_DTO = new UsuarioDTO();

        gerente_DAO = new GerenteDAO();
        gerente_DTO = new GerenteDTO();

        usuario_DTO.Nome = txt_nome.Text;
        usuario_DTO.Email = txt_email.Text;
        usuario_DTO.Senha = txt_senha.Text;

        gerente_DTO.Cpf = txt_cpf.Text;
        gerente_DTO.Telefone = txt_telefone.Text;

        bool sucesso = usuario_DAO.insere(usuario_DTO);

        gerente_DTO.Usuario_idusuario = usuario_DAO.getIdUsuarioByEmail(txt_email.Text);
        
        string msg = "";

        if (sucesso)
        {
            msg = "Cadastrado com Sucesso!";
            txt_nome.Text = String.Empty;          
            txt_email.Text = String.Empty;
            txt_senha.Text = String.Empty;
        }
        else
        {
            msg = "Houve problema no cadastro!";
        }

        bool sucesso2 = gerente_DAO.insere(gerente_DTO);

        if (sucesso2)
        {
            msg = "Cadastrado com Sucesso!";
            txt_cpf.Text = String.Empty;
            txt_telefone.Text = String.Empty;
        }
        else
        {
            msg = "Houve problema no cadastro!";
        }

        carregaGrid();
    }

    protected void deletarGerente(object sender, GridViewDeleteEventArgs e)
    {
        UsuarioDAO usuario = new UsuarioDAO();
        GerenteDAO gerente = new GerenteDAO();

        int num2 = Convert.ToInt32(gridGerentes.Rows[e.RowIndex].Cells[1].Text);

        string msg = "";

        bool sucesso = gerente.deleta(num2);

        if (sucesso)
        {
            msg = "Excluido com Sucesso!!!";
        }
        else
        {
            msg = "Houve problema na exclusão!";
        }

        int num = Convert.ToInt32(gridGerentes.Rows[e.RowIndex].Cells[0].Text);
        bool sucesso2 = usuario.deleta(num);

        if (sucesso2)
        {
            msg = "Excluido com Sucesso!!!";
        }
        else
        {
            msg = "Houve problema na exclusão!";
        }

        carregaGrid();
    }

    protected void atualizarGerente(object sender, GridViewUpdateEventArgs e)
    {
        usuario_DAO = new UsuarioDAO();
        usuario_DTO = new UsuarioDTO();

        gerente_DAO = new GerenteDAO();
        gerente_DTO = new GerenteDTO();

        TextBox idusuario = (TextBox)gridGerentes.Rows[e.RowIndex].Cells[0].Controls[0];
        TextBox idgerente = (TextBox)gridGerentes.Rows[e.RowIndex].Cells[1].Controls[0];
        TextBox txt_nome = (TextBox)gridGerentes.Rows[e.RowIndex].Cells[2].Controls[0];
        TextBox txt_email = (TextBox)gridGerentes.Rows[e.RowIndex].Cells[3].Controls[0];
        TextBox txt_senha = (TextBox)gridGerentes.Rows[e.RowIndex].Cells[4].Controls[0];
        TextBox txt_cpf = (TextBox)gridGerentes.Rows[e.RowIndex].Cells[5].Controls[0];
        TextBox txt_telefone = (TextBox)gridGerentes.Rows[e.RowIndex].Cells[6].Controls[0];

        usuario_DTO.Idusuario = Convert.ToInt32(idusuario.Text);
        usuario_DTO.Nome = txt_nome.Text;
        usuario_DTO.Email = txt_email.Text;
        usuario_DTO.Senha = txt_senha.Text;
       
        gerente_DTO.Idgerente = Convert.ToInt32(idgerente.Text);
        gerente_DTO.Cpf = txt_cpf.Text;
        gerente_DTO.Telefone = txt_telefone.Text;

        usuario_DAO.atualiza(usuario_DTO);

        gerente_DAO.atualiza(gerente_DTO);

        gridGerentes.EditIndex = -1;
        carregaGrid();
    }

    protected void cancelarGerente(object sender, GridViewCancelEditEventArgs e)
    {
        gridGerentes.EditIndex = -1;
        carregaGrid();
    }

    protected void editarGerente(object sender, GridViewEditEventArgs e)
    {
        gridGerentes.EditIndex = e.NewEditIndex;
        carregaGrid();
    }
}